package com.spi.sentinel;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter {

    /**
     * 限流key
     * @return
     */
    String key() default "";

    /**
     * 每秒允许请求的数量
     * @return
     */
    double permitsPerSecond() default 1;

    /**
     * 获取令牌最大等待时间
     * @return
     */
    long timeout() default 0;

    /**
     * 最大等待时间单位
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 限流提示
     * @return
     */
    String message() default "服务器繁忙。。。";

}
